perm filename 3[00,BGB] blob sn#075331 filedate 1973-12-05 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00007 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	~F8III. USING CRE.
C00005 00003	~F8PRIMER
C00009 00004	~F8CRE TELETYPE COMMANDS
C00013 00005	~F8CRE TELETYPE COMMANDS
C00017 00006	SAIL INTERFACING TO CRE.
C00025 00007	~F8LISP INTERFACING TO CRE.
C00029 ENDMK
C⊗;
~F8III. USING CRE.

	A. PRIMER ON RUNNING CRE.
	B. TELETYPE COMMANDS.
	C. SAIL INTERFACING.
	D. LISP INTERFACING.


PRIMER ON RUNNING CRE.


Single Image Contouring.

	The Stanford  copy of  CRE is  run by  typing "R  CRE".   CRE
displays  only  on a  III console,    however it  will  work (without
displays) when run  from a Data Disc  console.  The  command  scanner
is a  simple character jump table;  the command scanner will  type an
asterisk  when it is  listening for teletype  input. Carriage returns
following  commands  are  unnecessary  but  harmless;  most  commands
signal  their  completion by  displaying  something  or  by typing  a
carriage return. Some commands require arguments or file names.   The
question mark, "?", command  will display a summary of  all the other
commands.

	Command  characters may be  modified by the  control and meta
shift keys; such  keying will be  indicated in  this document by  the
prefixing  the characters  "α", "β",   and  "ε" to  indicate control,
meta or both meta-control shift keying respectively.

	The command "T" will take a four  bit television picture from
camera  number one. The command  "H" will display a  histogram of the
television picture.   The command  character SPACE  will refresh  the
image you had before the  histogram display. The command "C" followed
by a  list of octal numbers followed by a carriage return will make a
contour image and display it. Thus the teletype  discourse for taking
and  contouring  a single television image  should have the following
appearance:

↑C

.R CRE

*T
*H 
*C20 40 60
*

	All  the images  in  this  document were  made  with 3  or  7
equally  spaced contours; for which  cases the commands  "Q" and "αQ"
will automatically specify  contour cuts are  20, 40,  60 or 10,  20,
30, 40, 50, 60, 70 respectively.
~I1973,800;F8- 34 -
~F8PRIMER

IMAGE INPUT, OUTPUT AND XGP'ing.

	After you have  an image and  its contours; you can  save one
or the  other or both on  disk files; or print one  or the other. The
"O" command will output a video  image file, in the new hand-eye  200
octal word header format. The "I"  will input a video image from such
a  hand-eye file; if the file  is not 216 by  288, then the center of
the image will be placed  coincidant with the center of a 216  by 288
window and  the image will be  repacked with undefined  pixels set to
zero. Both the "I" and the "O"  commands will ask for a filename;  if
an extension  is  not explicitly  given the  default extension  "TMP"
will  be used. The  "αO" command will  output the  CRE data structure
and the  "αI" command  will input  CRE data  structure, naturely  the
default extension is "CRE".

	The "X"  command will output  a video image  to the  XGP. The
"εC"  command followed  by a  list of octal  numbers will  output the
HSEG and VSEG;  raw vector  contours, to  the XGP.   The "P"  command
will  output  the  currently  displayed III  buffer,    naturely  the
default  extension is "III".  Finally, the "J"  command  enhances the
contrast of an image for the sake of its appearance on the XGP.

INTERACTIVE (MANUAL) MULTI IMAGE PROCESSING.

	Taking or  inputing new  television images,   and  contouring
them using  the "C" command or the "Q" command  will form a film data
structure.  Images  can be explicitly compared  and linked by  typing
"M" match command  which links the latest image  with the immediately
previous  image. The "Z" command will zero  the data structure of all
images.

AUTOMATIC MULTI IMAGE PROCESSING.

	The "A" command  is for automatic turn table  perception, CRE
takes  64 pictures  from  camera #3  while rotating  the  turn table,
outputs a  file and  exits  (returning control  to the  3D  geometric
editor). The turn  table is manually moved small amounts  by the four
possible  "Y" commands: "Y",  "αY", "βY", and  "εY". Numeric absolute
and relative positioning of  the turntable is under the  "U" command;
the details of which are still being developed.
~I1973,800;F8- 35 -
~F8CRE TELETYPE COMMANDS

VIDEO COMMANDS_______________________________________________________

  T	 Take a 4-bit television picture.
 αT	 Take a 6-bit television picture.
  S	 Select camera number, default is camera #1.
 αS	 Set TCLIP, default is 0.
 βS	 Set BCLIP, default is 7.
 εS	 Shrink node space. Calls node storage compactor.

	The two  command characters  "T" and  "S" control live  video
camera input.  The default camera is camera #1  on the Cohu camera on
the hand eye table. Camera #0 is the Cart Receiver, camera #2  is the
sierra hand eye camera,  and camera #3 is one or  the other old brown
cameras depending  on which coax is plugged up, the brown camera near
III23 is the Font Camera  and the brown camera near the  turntable is
the GEOMED Camera.

INPUT OUTPUT COMMANDS________________________________________________

  I      Input TMP file.	Television image from disk file.
 αI      Input CRE file.	Contour film from disk file.

  O      Output TMP file.	Television image to disk file.
 αO      Output CRE file.	Contour film to disk file.

  X      Output video image to XGP.
  P      Output III file.	III buffer for calcomp plotter.
 εC   	 Output VIC contour edges to XGP.
	 This command requires a list of octal numbers.
  J   	 Contrast enhancement for the sake of XGP appearance.
  #	 Type twenty CRLF's to clear page printer.
  ?	 Display help summary of CRE commands.

IMAGE CONTOURING COMMANDS____________________________________________

   C   Cut at given threshold levels.
   Q   Cut at equally spaced conttours, three cuts: 20, 40, 60.
  αQ   Seven cuts: 10, 20, 30, 40, 50, 60, 70.

   E	Enable all CRE processing.
   D	Disable all steps except contouring.

   M	 Compare and mate match current image with previous.
   W	 Enter Arc Width Table alter mode.
_____________________________________________________________________
~I1973,800;F8- 36 -
~F8CRE TELETYPE COMMANDS

NODE FOLLOWING COMMANDS______________________________________________

 +       Fetch film node.
 !       Flush node display.

 , .     CW,,CCW         ...fetch Ring links.
 < >     DAD,,SON        ...fetch Tree links.
         TYPE,,RELLOC
 ∪ ∩     ENDO,,EXO       ...fetch nested polygon tree links.
 ≤ ≥     ALT,,NCNT       ...fetch alternate shape or arc link.
 ⊂ ⊃     NGON,,PGON      ...fetch nested polygon tree links.
 ∨ ∧     NTIME,,PTIME    ...fetch time line links.

	These 14 commands  allow detailed inspection of the  CRE data
structure  by showing the  contents of a  node.  Data  halfwords of a
node are displayed  in octal; link  halfwords are displayed  prefixed
with a  letter indicating the type  of node being pointed  at; a zero
link is displayed as "NIL".

	The  FILM  node,    which  is  the  root  of  the whole  data
structure is  fetched and  displayed by the  "+" command.   From  the
Film, the  ">" command can be  used to get SON(FILM)  which is always
the first image, and  ">" command of  an image will  get a level  and
">"  of  a  level  will get  a  polygon.  Vectors  and  polygons  are
intensified  when  their  contents are  being  displayed.   The  exit
command is "!", which leaves the screen less cluttered.

WINDOW SCROLLING COMMANDS_____________________________________________

  ;      Move camera left.
  :      Move camera right.
  (      Move camera down.
  )      Move camera up.

  -      Zoom out, shrink displayed image.
  *      Zoom in,  expand displayed image.
 αZ      Reset scrolling window to it initial position and size.
  /      Halve strength of scrolling delta.
  \      Double strength of scrolling delta.

  ↔	 Single step displayed image forwards.
 α↔	 Single step displayed image backwards.
 β↔	 Run film display forwards.
 ε↔	 Run film display backwards.

	The first  several commands allow  minute examination  of the
image by  magnification and window positioning. The command character
"↔" allows  single stepping  thru  the film  of images  or  continous
display of the film forwards or backwards.
_____________________________________________________________________
~I1973,800;F8- 37 -
SAIL INTERFACING TO CRE.

	It should be possible to embed the CRE machine code  under  a
SAIL  core  image;  however  I do not intend to do this work. For the
present, the CRE interface to SAIL is only realized via a  disk  file
transfer  of  the  data  structure.   A  CRE file may be read into an
integer array in binary mode as illustrated below.

	The  first  word  of a CRE file is the first word of the film
node which contains the size of the file in words. The film node  has
address  0;  the  next node has address 7; and so on in multiplies of
seven.  There are no empty nodes in a CRE file.  The  following  SAIL
program will read in a CRE file named X:

	COMMENT EXAMPLE OF SAIL INPUT OF A CRE FILE;
	BEGIN	"TEST"
		INTEGER SIZE;
		OPEN(1,"DSK",8,3,0,0,0,0);
		LOOKUP(1,"X.CRE",0);
		SIZE ← WORDIN(1);
	BEGIN
		INTEGER ARRAY NODE[0:SIZE];
		ARRYIN(1,NODE[1],SIZE-1);
		RELEASE(1);
		"MAIN PROGRAM.";
	END;
	END;

After the NODE array is loaded, CRE links and data may be accessed by
their  document names in a reasonible node-link notation using macros
like the following:

	DEFINE CW(Q)  = "(NODE[Q] LSH -18)";
	DEFINE CCW(Q) = "(NODE[Q] LAND '777777)";
	DEFINE DAD(Q) = "(NODE[Q+1] LSH -18)";
	DEFINE SON(Q) = "(NODE[Q+1] LAND '777777)";

So  that  the first vertex of the first polygon of the first level of
the first image of the film can be obtained:

	INTEGER FILM,IMAGE,LEVEL,POLYGON,VERTEX;

	FILM ← NODE[0];
	LEVEL ← SON(FILM);
	POLYGON ← SON(LEVEL);
	VERTEX ← SON(POLYGON);

The  user may note that SAIL will compile three or more instructuions
for what is known as a PDP-10 halfword operation; also  if  the  user
converts  the  CRE  nodes  and links into LEAP items and associations
then an  overhead  of  from  ten  to  one  hundred  instructions  per
"halfword operation" will be incurred.
~I1973,800;F8- 39 -
~F8LISP INTERFACING TO CRE.

	It should be possible  to embed the CRE machine  code under a
LISP  core image; however I  do not intend  to do this  work. For the
present, the CRE interface to LISP  is only realized via a disk  file
transfer of  the data structure.   A CRE file  may be read  into LISP
binary  program space  and accessed  using the CRE  nomensclature (11
link  names  and  13  datum  names)  by  means  of  the  S-Expression
subroutines provided  in the file CRE.LSP[CRE,BGB].   The subroutines
work in both the old Stanford LISP 1.6 as well as the newer UCI  LISP
and Micro Planner, PLNR. The CRE.LSP[CRE,BGB] can be loaded either by
one or the other of the following tWo LISP statements:

	(DSKIN(CRE,BGB)(CRE.LSP))
	(INC(INPUT(CRE,BGB)(CRE.LSP)))

A CRE film file is read into LISP binary program space by one of the
three possible INCRE formats:

	(INCRE filename)
	(INCRE filename project)
	(INCRE filename project programmer)

Filenames should be  six characters or less, projects  and programmer
initials should  be three characters or  less, the filename extension
CRE is  assummed and the  usual PPPN  defaults  occur. If  the  input
succeeds INCRE returns a value T;  if the input fails INCRE returns a
value NIL and prints one or the other of these two messages:

	CRE FILE NOT FOUND.
	CRE FILE REQUIRES 00000 MORE WORDS OF BINARY PROGRAM SPACE.

After a sucessful  INCRE; the film,  image,  level, polygon,  arc and
vector  nodes are  referred to  by integers using  the 11  Link Fetch
Subroutines:
	(CW node)(CCW node)(DAD node)(SON node)(ENDO node)(EXO node)
	(ALT node)(NGON node)(PGON node)(NTIME node)(PTIME node)

The film  node's  address is  the  integer 0,   zero.    So that  the
expression  (SETQ V3(CCW(CCW(SON(SON(SON(SON  0)))))))  will retrieve
the lower right hand corner of the border polygon of the -1  level of
the first image  of the film. The 13 CRE.LSP  datum fetch subroutines
are:
	(ROW node)(COL node)(CRETYPE node)(RELOC node)
	(CNTRST node)(NCNT node)(ZDEPTH node)(PERM node)(AREA node)
	(MXX node)(MYY node)(MZZ node)(PXY node)
~I1973,800;F8- 40 -